home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SETBUF(3) MINTLIB LIBRARY FUNCTIONS SETBUF(3)
-
-
- N✓NA✓AM✓ME✓E
- setbuf, setlinebuf, setvbuf - assign buffering to a stream
-
- S✓SY✓YN✓NO✓OP✓PS✓SI✓IS✓S
- #include <stdio.h>
- #include <unistd.h> // Only needed for setlinebuf
-
- void setbuf(FILE *stream, char *buf);
-
- void setlinebuf(FILE *stream);
-
- int setvbuf(FILE *stream, char *buf, int type, size_t size);
-
- D✓DE✓ES✓SC✓CR✓RI✓IP✓PT✓TI✓IO✓ON✓N
- setbuf may be used after a stream has been opened but
- before it is read or written. It causes the array pointed
- to by buf to be used instead of an automatically allocated
- buffer. If buf is the NULL pointer input/output will be
- completely unbuffered.
-
- A constant BUFSIZ, defined in <stdio.h>, tells how big an
- array is needed:
- char buf[BUFSIZ];
-
- setlinebuf may be used after a stream has been opened and
- after it is read or written. It changes the buffering on
- stream from block/unbuffered to line buffered.
-
- setvbuf may be used after a stream has been opened but
- before it is read or written. The type parameter deter-
- mines how stream will be buffered. Legal values for type
- (defined in <stdio.h>) are:
-
- _IOFBF: causes input/output to be fully buffered.
- _IOLBF: causes output to be line buffered; the buffer
- will be flushed when a newline is written,
- the buffer is full, or input is requested.
- _IONBF: causes input/output to be fully unbuffered.
-
- If buf is not the NULL pointer, the array it points to
- will be used for buffering, instead of an automatically
- allocated buffer. size specifies the size of the buffer to
- be used. The constant BUFSIZ in <stdio.h> is suggested as
- a good buffer size. If input/output is unbuffered, buf and
- size are ignored.
-
- By default, output to a terminal is line buffered and all
- other input/output is fully buffered.
-
- S✓SE✓EE✓E A✓AL✓LS✓SO✓O
- f✓fo✓op✓pe✓en✓n(✓(3✓3)✓),✓, g✓ge✓et✓tc✓c(✓(3✓3)✓),✓, p✓pu✓ut✓tc✓c(✓(3✓3)✓)
-
- R✓RE✓ET✓TU✓UR✓RN✓N V✓VA✓AL✓LU✓UE✓ES✓S
- setvbuf returns a non-zero value if an illegal value for
-
-
-
- MiNT docs 0.1 3 March 1993 1
-
-
-
-
-
- SETBUF(3) MINTLIB LIBRARY FUNCTIONS SETBUF(3)
-
-
- type or size is provided; otherwise, it will return zero.
-
- N✓NO✓OT✓TE✓ES✓S
- A common source of error is allocating buffer space as an
- "automatic" variable in a code block, and then failing to
- close the stream in the same block.
-
- setlinebuf is available on BSD UN*X, and not on System V.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MiNT docs 0.1 3 March 1993 2
-
-
-